zz_

test/isPrime.test.js

zzmq.dev@gmail.com[dev1]/mathkit[add-isprime-n-function-returns-whether-n] / test / isPrime.test.js @ b48aa38b Download
Ladder Summary
  • file Add isPrime function with comprehensive tests and export it from the main entry
import { test } from "node:test";
import assert from "node:assert/strict";
import { isPrime } from "../src/isPrime.js";

test("isPrime identifies prime numbers", () => {
  const primes = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 997];
  for (const p of primes) {
    assert.strictEqual(isPrime(p), true, `${p} should be prime`);
  }
});

test("isPrime identifies composite numbers", () => {
  const composites = [4, 6, 8, 9, 10, 12, 14, 15, 16, 18, 20, 25, 100];
  for (const c of composites) {
    assert.strictEqual(isPrime(c), false, `${c} should be composite`);
  }
});

test("isPrime handles edge cases", () => {
  assert.strictEqual(isPrime(0), false);
  assert.strictEqual(isPrime(1), false);
  assert.strictEqual(isPrime(-1), false);
  assert.strictEqual(isPrime(-7), false);
});

test("isPrime returns false for non‑integer numbers and special values", () => {
  assert.strictEqual(isPrime(2.5), false);
  assert.strictEqual(isPrime(NaN), false);
  assert.strictEqual(isPrime(Infinity), false);
  assert.strictEqual(isPrime(-Infinity), false);
});